/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pt.mleiria.app.web.bean;

import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.model.chart.BarChartModel;
import pt.mleiria.app.web.graphics.BarChart;

/**
 *
 * @author manuel
 */
@ManagedBean(name = "cryptoBean")
@SessionScoped
public class CryptoBean extends MasterBean implements Serializable{

    public CryptoBean() {
        //this.encryptedText = "F96DE8C227A259C87EE1DA2AED57C93FE5DA36ED4EC87EF2C63AAE5B9A7EFFD673BE4ACF7BE8923CAB1ECE7AF2DA3DA44FCF7AE29235A24C963FF0DF3CA3599A70E5DA36BF1ECE77F8DC34BE129A6CF4D126BF5B9A7CFEDF3EB850D37CF0C63AA2509A76FF9227A55B9A6FE3D720A850D97AB1DD35ED5FCE6BF0D138A84CC931B1F121B44ECE70F6C032BD56C33FF9D320ED5CDF7AFF9226BE5BDE3FF7DD21ED56CF71F5C036A94D963FF8D473A351CE3FE5DA3CB84DDB71F5C17FED51DC3FE8D732BF4D963FF3C727ED4AC87EF5DB27A451D47EFD9230BF47CA6BFEC12ABE4ADF72E29224A84CDF3FF5D720A459D47AF59232A35A9A7AE7D33FB85FCE7AF5923AA31EDB3FF7D33ABF52C33FF0D673A551D93FFCD33DA35BC831B1F43CBF1EDF67F0DF23A15B963FE5DA36ED68D378F4DC36BF5B9A7AFFD121B44ECE76FEDC73BE5DD27AFCD773BA5FC93FE5DA3CB859D26BB1C63CED5CDF3FE2D730B84CDF3FF7DD21ED5ADF7CF0D636BE1EDB79E5D721ED57CE3FE6D320ED57D469F4DC27A85A963FF3C727ED49DF3FFFDD24ED55D470E69E73AC50DE3FE5DA3ABE1EDF67F4C030A44DDF3FF5D73EA250C96BE3D327A84D963FE5DA32B91ED36BB1D132A31ED87AB1D021A255DF71B1C436BF479A7AF0C13AA14794";
        this.encryptedText = "vptnvffuntshtarptymjwzirappljmhhqvsubwlzzygvtyitarptyiougxiuydtgzhhvvmum" +
                                "shwkzgstfmekvmpkswdgbilvjljmglmjfqwioiivknulvvfemioiemojtywdsajtwmtcgluy" +
                                "sdsumfbieugmvalvxkjduetukatymvkqzhvqvgvptytjwwldyeevquhlulwpkt";
    }
    
    private BarChartModel englishBarModel;
    private String encryptedText;

    @PostConstruct
    public void init() {
        //getLogger(CryptoBean.class).info(cryptoEjb.fromHexToString(encryptedText));
        getLogger(CryptoBean.class).info(encryptedText);
    }

    public BarChartModel getBarModel() {
        final BarChart bc = new BarChart("English Frequency Alphabet", "Letters", "Freq.", "Eng. Freq. Analyzer");
        bc.setMaxY(getCryptoEjb().getEnglishFreqMaxValue());
        englishBarModel = bc.createBarChartModel(getCryptoEjb().getEnglishFreq());
        return englishBarModel;
    }

    public String analyzeFrequency(){
        final BarChart bc = new BarChart("Cipher Frequency Alphabet", "Letters", "Freq.", "Freq. Analyser");
        bc.setMaxY(100);
        return "";
    }
    
    public String getEncryptedText() {
        return encryptedText;
    }

    public void setEncryptedText(String encryptedText) {
        this.encryptedText = encryptedText;
    }
    
}
